Having a field in a child class with a name that differs from a parent class' field only by capitalization is sure to cause confusion. Such child
class fields should be renamed.
Noncompliant code example
Public Class Fruit
Protected PlantingSeason As String
' ...
End Class
Public Class Raspberry
Inherits Fruit
Protected Plantingseason As String ' Noncompliant
' ...
End Class
Compliant solution
Public Class Fruit
Protected PlantingSeason As String
' ...
End Class
Public Class Raspberry
Inherits Fruit
Protected WhenToPlant As String
' ...
End Class
Or
Public Class Fruit
Protected PlantingSeason As String
' ...
End Class
Public Class Raspberry
Inherits Fruit
' Field removed, parent field will be used instead
End Class
Exceptions
This rule ignores same-name fields that are Shared in both the parent and child classes. It also ignores Private parent
class fields and fields explicitly declared as Shadows, but in all other such cases, the child class field should be renamed.